Semiotic morphism was originally developed as a way to translate
between different types of Graphic User Interface design. Different
types of interface design can represent the same information, and
this
process can occur automatically via an algorithmic process - the
'content' and the representation are separated.
In Semiomorph (http://iconica.org/artefact/) this idea is applied to
an
electronic space which is represented as a third person digital game.
All of the game elements may be represented as either text, diagrams,
icons or simulation (the 'natural' mode of game spaces - realism).
Of course, it may potentially be applied to a wide range of possible
systems - such as those you have described. The key element is that
the
system can be described in mathematical / symbolic terms so that it
can
be defined in terms of functions, variables etc.
Troy
In terms of Abstract Algebra, you mean? That makes sense to me. I've
been
developing a windowing/menuing set of behaviors for Shockwave (and
Director
more generally). The elements of the algebra would be things like
sprite
channels, behaviors, and members. The operations would be things like
giving
a sprite channel a member or a behavior. Or destroying a sprite's
member or
behavior(s) etc.
More generally (so that it isn't linked to, say, the Director
implementation), an algebra of OOP objects.
Whoever has worked with an API and done some abstract algebra may have
noted
that manipulating the commands of an API to accomplish this or that is
very
like doing a low-level type of abstract algebra proof where you push
symbols
around, concatenate them, perform operations on them, in trying to
prove
some property of the system. Only in the case of mucking with the API,
you're not trying to prove some property of the system but trying to
make
the system do a certain thing.
Which is, I suppose, related to languages like Lisp which were
developed
both for artificial intelligence programming and for generating
mathematical
proofs. More generally, languages like Lisp were developed to
instantiate
the possibility of reasoning/logic in a programming language.
ja